package com.gxa.hotel.portal.jms;

import lombok.extern.slf4j.Slf4j;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Repository;

@Repository
@Slf4j
public class Consumer {
    // 接收消息: 让当前的消费者在一定的通道上监听
// 从queueA 的通道上监听 - Queue

    /**
     * jsm监听并接收消息的机制
     * 通过@JmsListener 实现监听,通过destination声明要监听的目的地
     * 如果有消息,就注入到方法的参数中message
     *
     * 当bean被Spring加载成功,就会字段循环监听过程
     * 如果有多个queue的监听,消费只能被消费一次
     * @param message
     */
    @JmsListener(destination = "queueA")
    public void listen(String message){
        log.info("在queueA队列中接收到消息:{}",message);
        System.out.println("receive1从通道queueA中接收:"+message);
    }
    // 从一对多通道上接收
    @JmsListener(destination = "topicA")
    public void receive11(String message){
        System.out.println("receive11从订阅topicA中接收:"+message);
    }
    @JmsListener(destination = "topicA")
    public void receive20(String message){
        System.out.println("receive11从订阅topicA中接收:"+message);
    }
}
